/***
 * 结算管理js
 * @author ghn-20151027
 */
$(function () {
    // 渲染页面-通用部分；
    commTemplUtil.initPage();
    // 渲染左侧菜单;
    commTemplUtil.initCommLeftMemu();

    //初始结算汇总数据
    iniClassifyData();

    //获取账户信息
    queryAccount();

    //渲染tab切换
    $.commNavTabs2($("#commTabs_1").find(".head-item"),
        $("#commTabs_1").find(".body-item"),
        "current");

    var defaultPagingObj = {
        total : 0,
        pageSize : 10,
        page : 1
    };

    PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);

    // 兼容性--使 文本框 无法输入;
    $("#acct").find("input").on("focus", function () {
        // or readonly;
        $(this).blur();
    });

    var templ = "<option value=''>请选择</option> <% _.each(obj, function(item){%><option value='<%=item.code%>'> <%=item.text%> </option> <% }); %>";
    var templObj = _.template(templ);

    // 结算记录-状态
    var settleListData = $.extend([], PAGE_DATA.statusData);
    var settleListHtml = templObj(settleListData);
    $("#status").html(settleListHtml);

    // 结算记录-搜索
    $("#search-btn-1").on("click", function () {
        getSettleAccountInfo(1);
    });

    //加载结算记录的数据
    getSettleAccountInfo(1);

    // 账户明细-类型
    var accountDetailStsData = $.extend([], PAGE_DATA.mxstatusData);
    var accountDetailStsHtml = templObj(accountDetailStsData);
    $("#mxstatus").html(accountDetailStsHtml);

    // 账户明细-搜索,
    $("#search-btn-detail").on("click", function () {
        querydetail(1);
    });

    //加载账户明细的数据
    querydetail(1);

    //加载账户设置
    queryaccountset();
});

//初始结算汇总数据
function iniClassifyData() {
    // 获取结算汇总数据
    $.ajax({
        url : PAGE_CONFIG.requestUrl.querybalance,
        type : "get",
        success : function (result) {
            //总金额
            $("#totalprice").html(result.data.totalprice);
            //可用金额
            $("#availableprice").html(result.data.availableprice);
            //保护金额
            $("#protectedprice").html(result.data.protectedprice);
            //冻结金额
            $("#freeze").html(result.data.freeze);

        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取结算数据失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });
}

//获取银行账户信息
function queryAccount() {
    // 获取银行账户数据
    $.ajax({
        url : PAGE_CONFIG.requestUrl.queryaccount,
        type : "get",
        success : function (result) {
            //用于判断是否有账户信息的标示，0表示没有账户信息、1表示有账户信息
            if (result.data.flag == 0) {
                //没有账户信息则需隐藏页面上的银行信息
                $('#acct').hide();
                $('#acctsub').hide();
                $('#sz').html("请设置账户信息");
            } else {
                //银行名称
                $("#bankname").val(result.data.bankname);
                //银行卡号
                $("#cardnum").val(result.data.cardnum);
                //姓名
                $("#name").val(result.data.name);
                //账户
                $("#account").val(result.data.account);
                $('#sz').html("修改账户信息");

                // 添加 验证逻辑;
                var formValidate = $("#myform1").validate({
                        rules : {
                            bankname : "required",
                            withdraw : {
                                required : true,
                                number : true,
                                min : 0.1
                            },
                            cardnum : "required",
                            name : "required",
                            account : "required"
                        },
                        errorPlacement : function (error, element) {
                            if (element.attr("type") == "text") {
                                element.after($("<span class='error-line'  align='center'/>").append(error));
                            }
                        }
                    });
                $('#txsub').on("click", function () {
                    if (!formValidate.form()) {
                        return false;
                    }
                    $("#myform1").submit();

                });
            }

            //绑定修改账户信息按钮的跳转事件
            $('#sz').on("click", function () {
                $("#commTabs_1").find(".head-item").eq(3).trigger("click");
            });
        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取结算数据失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });
}
//加载结算记录的数据
function getSettleAccountInfo(page) {
    //渲染检索条件中2个时间的日历组件
    $("#startTime").datepicker();
    $("#endTime").datepicker();

    var classifyTempl = _.template($('#item-template1').html());
    //开始时间
    var startTime = $("#startTime").val() || "";
    //结束时间
    var endTime = $("#endTime").val() || "";
    //状态
    var status = $("#status").val() || "";

    var onClickObj = {
        onClick : function () {
            var clickPage = $(this).attr("data-page");
            getSettleAccountInfo(parseInt(clickPage));
        }
    };

    //获取记录数据
    $.ajax({
        url : PAGE_CONFIG.requestUrl.queryrecount,
        type : "get",
        data : {
            page : page,
            pageSize : PAGE_DATA.pagingObj.pageSize,
            starttime : startTime, //开始时间
            endtime : endTime, //结束时间
            status : status //结算状态0全部、1成功、2失败、3申请中
        },
        success : function (result) {
            setClassifyData('commTabs_2_body', result.data, classifyTempl);
            //  更新翻页控件
            var tmpConf = $.extend(result.pagingConfData, onClickObj)
                commTemplUtil.initPaging("#comm-paging", tmpConf);
        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取结算记录失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });
}

//加载账户明细的数据
function querydetail(page) {
    //渲染检索条件中2个时间的日历组件
    $("#mxstartTime").datepicker();
    $("#mxendTime").datepicker();

    var classifyTempl = _.template($('#item-template').html());
    //开始时间
    var startTime = $("#mxstartTime").val();
    //结束时间
    var endTime = $("#mxendTime").val();
    //状态
    var status = $("#mxstatus").val();

    var onClickObj = {
        onClick : function () {
            var clickPage = $(this).attr("data-page");
            querydetail(parseInt(clickPage));
        }
    };

    //获取记录数据
    $.ajax({
        url : PAGE_CONFIG.requestUrl.queryaccountdetail,
        type : "get",
        data : {
            page : page,
            pageSize : PAGE_DATA.pagingObj.pageSize,
            starttime : startTime, //开始时间
            endtime : endTime, //结束时间
            status : status, //结算状态0全部、1成功、2失败、3申请中
        },
        success : function (result) {
            setClassifyData('commTabs_1_body', result.data, classifyTempl);
            //  更新翻页控件
            var tmpConf = $.extend(result.pagingConfData, onClickObj);
            commTemplUtil.initPaging("#comm-paging1", tmpConf);
        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取结算记录失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });
}

/**
 * 生成-记录信息列表,
 */
function setClassifyData(id, data, templ) {
    var classifyTemplHtml = templ(data);
    $("#" + id).html(classifyTemplHtml);
};

//加载账户设置
function queryaccountset() {
    $.ajax({
        url : PAGE_CONFIG.requestUrl.queryaccount,
        type : "get",
        success : function (result) {
            //用于判断是否有账户信息的标示，0表示没有账户信息、1表示有账户信息
            if (result.data.flag == 1) {
                //银行名称
                $("#bname").val(result.data.bankname);
                //银行卡号
                $("#backnum").val(result.data.cardnum);
                //姓名
                $("#myname").val(result.data.name);
                //账户
                $("#myaccount").val(result.data.account);

                // 添加 验证逻辑;
                var formValidate = $("#myform").validate({
                        rules : {
                            bname : "required",
                            backnum : "required",
                            myname : "required",
                            myaccount : "required"
                        },
                        errorPlacement : function (error, element) {
                            if (element.attr("type") == "text") {
                                element.after($("<span class='error-line'  align='center'/>").append(error));
                            }
                        }
                    });
                $('#editsub').on("click", function () {
                    if (!formValidate.form()) {
                        return false;
                    }
                    $("#myform1").submit();

                });
            }

            //绑定修改账户信息按钮的跳转事件
            $('#sz').on("click", function () {
                $("#commTabs_1").find(".head-item").eq(3).trigger("click");
            });
        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取结算数据失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });
}